package generator.main.utils;

import java.util.ArrayList;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Element;

import generator.main.bean.Table;
/**
 * dom4J工具包
 * @author 郭军辉
 *
 * 2017年8月13日上午2:55:15
 */
public class ElementUtils {
	/**
	 * 根据根节点解析所有要生成代码的表名，库名
	 * @param root  		配置文件根节点
	 * @return				读取到数据库表名集合
	 * @throws Exception
	 */
	public static List<Table> getDBMappingEntity(Element root) throws Exception {
		List<Table> modelList = new ArrayList<Table>();
		/** 获取所有table节点 */
		@SuppressWarnings("unchecked")
		List<Element> tables = root.elements();

		for (Element e : tables) {
			@SuppressWarnings("unchecked")
			List<Attribute> listAttr = e.attributes();
			/** 根据table节点获取属性 */
			Table model = new Table();
			for (Attribute attr : listAttr) {// 遍历当前节点的所有属性
				String name  = attr.getName();// 属性名称
				String value = attr.getValue();// 属性的值
				if ("schema".equals(name)) {
					model.setSchema(value);
				}
				if ("tableName".equals(name)) {
					model.setTableName(value);
				}
				if ("remarks".equals(name)) {
					model.setRemarks(value);
				}
				if ("path".equals(name)) {
					model.setPath(value);
				}
				if ("pageName".equals(name)) {
					model.setPageName(value);
				}
				if ("className".equals(name)) {
					model.setClassName(value);
				}
			}
			modelList.add(model);
		}
		return modelList;
	}
}
